'''
打印空心菱形
思路分析
先死后活
1.打印矩形
*****
*****
*****
*****
*****
*****
*****
*****
*****
2.打印半菱形【两个直角三角形】
*       1
**      2
***     3
****    4
*****   5
****    4
***     3
**      2
*       1
3.打印全菱形
    *           1   2*1-1   空格 4    5-1 ((9 // 2) + 1) - 1
   ***          3   2*2-1   空格 3    5-2 ((9 // 2) + 1) - 2
  *****         5   2*3-1   空格 2    5-3 ((9 // 2) + 1) - 3
 *******        7   2*4-1   空格 1    5-4 ((9 // 2) + 1) - 4
*********       9   2*5-1   空格 0    5-5 ((9 // 2) + 1) - 5
 *******        7   2*4-1   空格 1    5-4 ((9 // 2) + 1) - 4
  *****         5   2*3-1   空格 2    5-3 ((9 // 2) + 1) - 3
   ***          3   2*2-1   空格 3    5-2 ((9 // 2) + 1) - 2
    *           1   2*1-1   空格 4    5-1 ((9 // 2) + 1) - 1
4.打印空心菱形  【果然 学习的东西从来都不会白学 ， 想要完成这个需求，需要去学习，学习知识点，学习if else
学习各种知识点  学习编程思想  学的东西从来都不会白学  所以 好好的学 好好实践 活在当下 做好当下的每一件事
踏踏实实的一步一步来  不要好高骛远 眼高手低 当下的就是最好的 ， 当下的就是昨天你所谓的美好的将来
基础为纲，把基础打好了，一切问题都不是问题。都可以慢慢解决，都可以学会，加油】
    *
   * *
  *   *
 *     *
*       *
 *     *
  *   *
   * *
    *
'''
# 先死后活
total_level = 31
for i in range(1, total_level):
    # 打印空格
    if i <= total_level // 2:
        for k in range(total_level // 2 + 1 - i):
            print(" ", end="")
    else:
        for k in range(total_level // 2 + 1 - (total_level - i)):
            print(" ", end="")
    if i <= total_level // 2:
        for j in range(2 * i - 1):
            # 如果是第一个和最后一个就打印*,其他的打印空格
            if j == 0 or j == 2 * i - 2:
                print("*", end="")
            else:
                print(" ", end="")
    else:
        for j in range(2 * (total_level - i) - 1):
            if j == 0 or j == 2 * (total_level - i) - 2:
                print("*", end="")
            else:
                print(" ", end="")
    print("")
